\chapter{Einleitung \label{einleitung}}
Die Computergrafik ist die Disziplin der Informatik, die sich mit der Erzeugung von Bildern mithilfe des Computers beschäftigt. \\
Es gibt unterschiedliche Arten von Grafiken, wie zum Beispiel Fotos, Vektorgrafiken oder 3D-Grafiken, wie man sie aus Simulationen oder Spielen kennt. Grundlage einer jeden Grafik sind Daten, die sie repräsentieren, welche durch einen Darstellungsprozess, das sogenannte \textit{Rendern}\index{Rendering}, zur Ausgabe - letztendlich zum Monitor - gebracht werden. Bei Fotos handelt es sich dabei um ein Raster von Farbwerten. Vektorgrafiken werden in speziellen Sprachen beschrieben, wie etwa in dem XML-ähnlichen Format SVG. \\
Komplexer verhält es sich bei der Generierung dreidimensionaler Grafiken. Typischerweise repräsentieren die zugrunde liegenden Daten dabei Polygone im Dreidimensionalen. Sie sind zu Drahtgittermodellen zusammengesetzt, welche die Oberflächen der darzustellenden Objekte beschreiben und durch einen vergleichsweise aufwändigen Renderingprozess in ein zweidimensionales Bild überführt werden. Durch Einfärbung oder Texturierung der durch die Polygone aufgespannten Flächen, sowie weitere Effekte, wie zum Beispiel die Belichtung, entsteht der Eindruck eines soliden Körpers, wenngleich nur die Objekt\-oberflächen berechnet werden. Ein einfaches Rendering, bei dem die Drahtgitterstruktur hervorgehoben ist, ist in Abbildung \ref{drahtgitter} zu sehen.
\begin{figure}
\centering
\includegraphics[scale=1]{img/Suzanne.pdf}
\caption[Drahtgittermodell eines Affenkopfes | Quelle (gemeinfrei):\\ \url{http://en.wikipedia.org/wiki/File:Suzanne.svg}]{Drahtgittermodell eines Affenkopfes}
\label{drahtgitter}
\end{figure}
\\ \\
Dies ist das Standardverfahren der dreidimensionalen Computergrafik, auf das Hardware und Software spezialisiert sind. Um den massiven Umfang an Daten und Berechnungen zu bewältigen, sind grundlegende Teile des Renderings, wie etwa die Schattierung der einzelnen Objekte, bereits in der Hardware von Grafikkarten implementiert. Zudem arbeiten aktuelle Grafikkarten stark parallelisiert und besitzen mehrere Rechenkerne, sogenannte \textit{Shader}. \index{Shader} Seit einigen Jahren ist es möglich, diese Shader - mit gewissen Einschränkungen - frei zu programmieren, sodass es zunehmend interessant wird, die Rechenleistung der Grafikkarten für andere Zwecke einzusetzen. \cite{cg} \\
\\
In dieser Ausarbeitung geht es um Volumengrafik. Bei dieser Art von Grafik werden die erwähnte freie Programmierbarkeit und das Rechenpotential der Grafikkarten dazu genutzt, Bilder aus Daten zu erzeugen, die aus einer dreidimensionalen Punktwolke von Skalarwerten bestehen. Solche Datensätze heißen \textit{Volumen(-daten)} \index{Volumen} und sind beispielsweise das Resultat eines Scans eines Computertomographen. Abbildung \ref{walnuss} 
\begin{figure}[b!]
\centering
\includegraphics[scale=\scale]{img/walnuss.png}
\caption{Volumenrendering einer Walnuss}
\label{walnuss}
\end{figure}
zeigt das Volumenrendering einer Walnuss, bei dem das Innere der Walnuss zu erkennen ist. Die Volumengrafik erweitert also das Spektrum der Computergrafik um einen Bereich, der mit konventioneller 3D-Grafik so nicht möglich ist, wie etwa die Visualisierung medizinischer Scans, oder die Darstellung realistischer Wolken in Computerspielen et cetera. \\
Da es sich bei Volumendaten grundsätzlich um eine Menge von diskreten (Mess-)Punkten handelt, müssen für den Renderingprozess die Werte zwischen den einzelnen Punkten rekonstruiert werden. \cite[Seite 1]{filter} Sogenannte Rekonstruktionsfilter, die diese Aufgabe leisten, sind im Speziellen das Thema dieser Arbeit. \\
Aufbauend auf einem Volumenrendering-Framework, bestehend aus der Grafikbibliothek OpenGL und der an der Westfälischen Wilhelms-Universität entwickelten Volumen"-render"-ing-Engine Voreen (\url{http://www.voreen.org/}), werden verschiedene Rekonstruktionsfilter als Shader in der OpenGL Shading Language implementiert und in Voreen integriert. Die Ergebnisse werden vorgestellt und verglichen. \\ 
\\
Dazu beschreibt Kapitel \ref{grundlagen} das zugrundeliegende Framework und gibt einen Einblick in die Theorie des Volumenrenderings, um die Notwendigkeit der Rekonstruktionsfilter aufzuzeigen. In Kapitel \ref{rekonstruktion} werden die theoretischen Grundlagen der Rekonstruktion gelegt und deren Anwendung beschrieben, um nachfolgend in Kapitel \ref{implementierung} verschiedene Rekonstruktionsfilter samt ihrer Implementierung vorzustellen. Schließlich stellt Kapitel \ref{benchmark} einen Vergleich der dargelegten Filter auf, der sowohl die Performance der verschiedenen Implementierungen, als auch den visuellen Eindruck der Renderings berücksichtigt.